package com.winit.schedule.job.tracker.repository.mysql.dao;

import java.util.List;

import com.winit.schedule.core.repository.constants.JobStatus;
import com.winit.schedule.core.repository.constants.TaskStatus;
import com.winit.schedule.core.repository.entity.JobEntity;
import com.winit.schedule.core.repository.query.JobQuery;

public interface MysqlJobDao {

    JobEntity getJobById(String jobId);

    void saveJob(JobEntity job);

    void updateJob(JobEntity job);

    void removeJob(String jobId);

    List<JobEntity> queryAllJobs(JobQuery job);

    void updateJobStatus(String jobId, JobStatus status);

    void updateJobCompleteStatus(String jobId, JobStatus jobStatus, TaskStatus taskStatus);

}
